/*

    This file is part of GLua

    GLua Development Environment
    Copyright (C) 2007 VoiDeD

    GLua is free software; you can redistribute it and/or modify
    it under the terms of the GNU Lesser General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    GLua is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Reflection;

namespace GLua
{
    // Completed, shouldn't be edited
    // This is used by the settings dialog, and shouldn't be used directly
    public partial class SettingsControl : UserControl
    {
        Settings settings;
        public SettingsControl(Settings settings)
        {
            InitializeComponent();

            this.settings = settings;

            switch ( settings.AutoComplete )
            {
                case AutoCompleteType.Restrictive:
                    comboBox1.SelectedIndex = 0;
                    break;
                case AutoCompleteType.AlwaysOn:
                    comboBox1.SelectedIndex = 1;
                    break;
            }
        }

        private void autoComplete_MouseEnter( object sender, EventArgs e )
        {
            FieldInfo fi = typeof( Settings ).GetField( "AutoComplete" );
            SettingAttribute attrib = ( SettingAttribute )fi.GetCustomAttributes( false )[0];

            textBox1.Clear();
            for ( int y = 0 ; y < attrib.Options.Length ; y++ )
            {
                textBox1.AppendText( attrib.Options[y] + ": " );
                textBox1.AppendText( attrib.Descriptions[y] + "\r\n" );
            }
        }
        private void autoComplete_MouseLeave( object sender, EventArgs e )
        {
            textBox1.Clear();
        }

        public Settings Settings
        {
            get
            {
                Settings sets = new Settings();
                sets.AutoComplete = ( comboBox1.SelectedIndex == 0 ? AutoCompleteType.Restrictive : AutoCompleteType.AlwaysOn );

                return sets;

            }
        }
    }
}
